package net.freestu.sola.web.global;


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import net.freestu.sola.web.util.MyLogger;

/**
 * 对全局的内容进行操作
 * 
*/
public class GlobleOperator{

	
	/**@deprecated
	 * 向Seeds文件中注入种子。
	 * @param seed
	 */
	public static void addSeed(String seed){
	 
		try {
	       
	       FileWriter fw =new FileWriter("./Seeds",true);    
	       BufferedWriter bw =new BufferedWriter(fw);
           bw.write(seed);
           bw.newLine();
	       bw.flush();            
	       bw.close();            
	       fw.close();           
	                                        
	     }
	     catch (IOException ex) {
	       ex.printStackTrace();
	     } 
	     
	     MyLogger.log("注入种子");
	     
	     
	   }

	
	/**
	 * @deprecated
	 * @return 散布蜘蛛种子的
	 */
	public static String getSeedRM(){

		String seedRM="";		
		 try {
		       FileReader fr = new FileReader("./SeedRM");   
		       BufferedReader br = new BufferedReader(fr);  
		       seedRM=br.readLine();
		    
		       br.close();                                   
		       fr.close();                                   
		     }
		     catch (IOException ex) {
		       ex.printStackTrace();
		     }
		  return seedRM;   
   }
	
	/**
	 * 从两个地方获取爬行禁止链接
	 * 1.自己的设定的链接。
	 * 2.从rebot.txt（这个暂时不要）
	 * @return
	 */
	public static ArrayList getForbidLinks(File f){
		
		ArrayList fbl=new ArrayList();//这里数组的初始化必须要指定数组大小。
		String str=null;
		try {
		       FileReader fr = new FileReader(f);   
		       BufferedReader br = new BufferedReader(fr);  
		       while((str=br.readLine())!=null){
		    	   fbl.add(str);
		       }
		       br.close();                                   
		       fr.close();                                   
		     }
		     catch (IOException ex) {
		       ex.printStackTrace();
		     }
		return fbl;
	}
	
	
	
	/**
	 * 蜘蛛开始爬行时的准备工作
	 *
	 */
	public static void startToFetch(){//!!!这个地方最好加点时间！
		
		MyLogger.log("<===========Start Fetch:==============>");
	}
	
	public static ArrayList getSeeds(){
		
		ArrayList seeds=new ArrayList();//这里数组的初始化必须要指定数组大小。
		seeds.add(GlobleVar.SEED);
		return seeds;
    }
	
	
	
	/**
	 * 蜘蛛爬行结束时的
	 * 暂时为空方法。
	 */
	public static void end(){
		
	}
	
	/**
	 * 注意：这里的域名http://111.111.111.111:8080/
	 * @param url
	 * @return
	 */
	public static String getDomain(String url){
		
		
		 Pattern p = Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?");
	     Matcher m = p.matcher(url);
	     
	     if(m.find()){//这里必须先find再group.
		     String seednameOfIp=m.group().replace(":", "$");
		     
		     //System.out.println(seednameOfIp);
		     return seednameOfIp;
	     }
		
	      //修改4.1。这里的www.sina.com也应该成为spider名字
		  String furl1=url.replaceAll("http://","");
		  String furl2=furl1.replaceAll("/","");
		  return furl2;
	}
}
